This invention relates to communication between processes in a processor system and in particular to the flow of work and data therebetween.
Existing process-to-process protocols provide only a simple data transmission capability. Data is received in the order sent. This provides users with a pipe view of the connection between two programs over which data flows. The term pipe is appropriate because data bytes put into the pipe by one process are removed from the pipe by a second process in the order they are placed into the pipe.
When two processes communicate, it is generally in terms of requests and responses. One process makes a work request of the other, which then carries it out and returns a response. The information that passes between these processes consists of the request, the response and some data.
The receiving program must examine the bytes as they are received, determining what is a command or request, and what is data. If a requesting process sends multiple requests over a single connection, all of the data associated with the first must be received before a subsequent request can be examined. An example of this is shown in U.S. Pat. No. 4,396,983 to Segarra et al. which describes establishment of communication between processes in a distributed processor system.
This view of process-to-process communication makes it very difficult to develop a server that can simultaneously handle several requests at once, and to optimize the order in which requests are processed.
Such servers have been implemented in some systems by only sending data addresses between processes, not the data itself. Such an approach restricts the usefulness of a message based protocol. The communicating processes must share memory; if they are located in different processors, all of the data must be sent.
IBM Technical Disclosure Bulletin Vol. 23 No. 5 Oct. 1980, Distributed Data Processing System, describes a processing system wherein system resources belong to processes and communication between processes is indirect via supervisor services. This provides some process mobility. Communication is in terms of messages processed by subsystem communication facilities. IBM Technical Disclosure Bulletin Vol. 22 No. 7 Dec. 1979, Message-Based Protocol for Interprocessor Communication, discloses a message-based protocol for communicating between processes executing on different processors loosly coupled via a common bus. Processes are defined as execution units which interact through message queues and through shared variables.